Integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor, a compiler and/or interpreter, build automation tools, and a debugger. IDEs are designed to maximize programmer productivity by providing components with user interfaces, thus minimizing the burden on the programmer to manage and control the software development.
During the software development process, such as implementation and deployment of applications and/or Web-based services, various type of information needs to be incorporated into the data models that support various IDE features. Such information includes updates from file systems and compilers, as well as user inputs.
Providing visual representations of complex systems can be a challenge for tool vendors in the IDE space. IDEs accumulate a tremendous amount of information about a code base. Making sense of all of this information can sometimes be done using a Model View Controller (MVC) design pattern, where an object model provides a domain-specific representation of information shown by one or more views (visual representations) of that information. However, the use of the MVC design pattern alone is often inadequate when modeling complex, ever changing information.